home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / public / xcdplayer / cdrom_sun.h < prev    next >
C/C++ Source or Header  |  1994-08-01  |  3KB  |  94 lines

  1. /*
  2.  * Copyright (C) 1990 Regents of the University of California.
  3.  *
  4.  * Permission to use, copy, modify, distribute, and sell this software and
  5.  * its documentation for any purpose is hereby granted without fee,
  6.  * provided that the above copyright notice appear in all copies and that
  7.  * both that copyright notice and this permission notice appear in
  8.  * supporting documentation, and that the name of the University of
  9.  * California not be used in advertising or publicity pertaining to
  10.  * distribution of the software without specific, written prior
  11.  * permission.  the University of California makes no representations
  12.  * about the suitability of this software for any purpose.  It is provided
  13.  * "as is" without express or implied warranty.
  14.  */
  15.  
  16. # include <X11/Intrinsic.h>
  17.  
  18. # define NOTITLESTR     "No Title"
  19. # define NODISCSTR      "No Disc"
  20.  
  21. # define bit(n)            (1 << (n))
  22.  
  23. /* bits for cdrom_state */
  24. # define CDROM_STATE_PLAY    bit(0)
  25. # define CDROM_STATE_PAUSE    bit(1)
  26. # define CDROM_STATE_STOP    bit(2)
  27. # define CDROM_STATE_EJECTED    bit(3)
  28. # define CDROM_STATE_CYCLE    bit(4)
  29. # define CDROM_STATE_SHUFFLE    bit(5)
  30. # define CDROM_STATE_PROGRAM    bit(6)
  31.  
  32. /* return codes from cdrom_status() */
  33. # define CDROM_INVALID        1
  34. # define CDROM_PLAYING        2
  35. # define CDROM_PAUSED        3
  36. # define CDROM_COMPLETED    4
  37. # define CDROM_ERROR        5
  38. # define CDROM_NO_STATUS    6
  39.  
  40. #define    STILL_MOUNTED    1
  41. #define    UNMOUNTED    0
  42.  
  43. struct msf {
  44.     unsigned char   minute;
  45.     unsigned char   second;
  46.     unsigned char   frame;
  47. };
  48.  
  49. struct prognode {
  50.     unsigned char    track;
  51.     Widget        button;
  52.     struct prognode *next;
  53.     struct prognode *prev;
  54. };
  55.  
  56. typedef struct _cdrom_info {
  57.     unsigned char    curtrack;    /* current track playing    */
  58.     unsigned char    mintrack;    /* first audio track        */
  59.     unsigned char    maxtrack;    /* last audio track        */
  60.     unsigned char    ntracks;    /* size of random track list    */
  61.     int        duration;    /* seconds played so far    */
  62.     int        state;        /* state of cd-rom drive    */
  63.     short        currand;    /* index into random track list */
  64.     short        lastprog;    /* number of selections in prog.*/
  65.     unsigned short    *times;        /* duration of each track    */
  66.     struct msf     *addrs;        /* starting minute/second/frames*/
  67.     struct prognode    *selection;    /* currently selected prog. trk    */
  68.     struct prognode *program;    /* list of programmed tracks    */
  69. } cdrom_info;
  70.  
  71. extern int        cdrom_open();
  72. extern void        cdrom_close();
  73. extern int        cdrom_start();
  74. extern int        cdrom_stop();
  75. extern int        cdrom_eject();
  76. extern int        cdrom_pause();
  77. extern int        cdrom_resume();
  78. extern int        cdrom_volume();
  79. extern int        cdrom_get_times();
  80. extern int        cdrom_get_curtrack();
  81. extern int        cdrom_get_msf();
  82. extern int        cdrom_get_curmsf();
  83. extern int        cdrom_play_track();
  84. extern int        cdrom_play_msf();
  85. extern int        cdrom_read_tocentry();
  86. extern int        cdrom_read_tochdr();
  87. extern int        cdrom_status();
  88.  
  89. extern cdrom_info    cdi;
  90. extern char        *disc_title;
  91. extern char        program_str[];
  92. extern char        *cdInfoDir;
  93.  
  94.